(define (f-law f1 f2 f3)
  (+ f1 (* 2 f2) (* 3 f3)))
  
;; recursive
(define (f-r n)
  (if (< n 3) n
      (f-law (f-r (- n 1)) (f-r (- n 2)) (f-r (- n 3)))))

;; iterative
(define (f-i n)
  (if (< n 3) n
      (f-iter 2 1 0 3 n)))

(define (f-iter f1 f2 f3 count n)
  (if (> count n) f1
      (f-iter  (f-law f1 f2 f3) f1 f2 (+ count 1) n)))